//package com.example.rabbitmq.rabbitmqLazy;
//
//import org.springframework.amqp.core.Message;
//import org.springframework.amqp.core.MessageProperties;
//import org.springframework.amqp.rabbit.core.RabbitTemplate;
//import org.springframework.amqp.rabbit.support.CorrelationData;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RestController;
//
//import java.util.UUID;
//
//@RestController
//public class SendTTLController implements RabbitTemplate.ConfirmCallback{
//    private RabbitTemplate rabbitTemplate;
//    /**
//     * 配置发送消息的rabbitTemplate，因为是构造方法，所以不用注解Spring也会自动注入（应该是新版本的特性）
//     * @param rabbitTemplate
//     */
//    public SendTTLController(RabbitTemplate rabbitTemplate){
//        this.rabbitTemplate = rabbitTemplate;
//        //设置消费回调
//        this.rabbitTemplate.setConfirmCallback(this);
//    }
//    /**
//     * 向消息队列1中发送消息
//     * @param msg
//     * @return
//     */
//    @RequestMapping("deadSend")
//    public String send1(String msg){
//          MessageProperties messageProperties = new MessageProperties();
//          messageProperties.setExpiration("10000");
//          messageProperties.setMessageId(UUID.randomUUID().toString());
//          Message message = new Message(msg.getBytes(), messageProperties);
//        rabbitTemplate.convertAndSend(RabbitMQTTLConfig.NORMAL_EXCHANGE, RabbitMQTTLConfig.NORMAL_QUEUE+"_routing_key", message);
//        return null;
//    }
//
//
//    /**
//     * 消息的回调，主要是实现RabbitTemplate.ConfirmCallback接口
//     * 注意，消息回调只能代表成功消息发送到RabbitMQ服务器，不能代表消息被成功处理和接受
//     */
//    public void confirm(CorrelationData correlationData, boolean ack, String cause) {
//        System.out.println(" 回调id:" + correlationData);
//        if (ack) {
//            System.out.println("消息成功消费");
//        } else {
//            System.out.println("消息消费失败:" + cause+"\n重新发送");
//
//        }
//    }
//}
//
